// pages/courseType/courseType.js
import {courseList} from "../../api/courseType" 
Page({
 data: {
    courses: [],
    type: '',       // 课程类型：boutique/free
    title: '',      // 页面标题
    pageNum: 1,     // 当前页码
    pageSize: 99999,   // 每页条数
    hasMore: true,  // 是否还有更多数据
    loading: false  // 加载状态
  }, 

  onLoad(options) {
    // 获取从首页传递的参数
    // this.setData({
    //   type: options.type || 'boutique',
    //   title: options.title || '课程列表'
    // })
    const currentType = options.type || 'boutique';
    this.setData({
      type: currentType
    });
        // 2. 根据type动态设置小程序顶部导航栏标题（替换“天亮云课堂”）
        const navTitle = currentType === 'boutique' ? '精品课程' : '免费课程';
        wx.setNavigationBarTitle({
          title: navTitle 
        });
    
    // 加载课程数据
    this.loadCourseData()
  },

  // 加载课程数据
  loadCourseData() {
    // 如果正在加载或没有更多数据，则返回
    if (this.data.loading || !this.data.hasMore) return;
    
    this.setData({ loading: true })
    
    courseList(this.data.type, this.data.pageNum, this.data.pageSize)
      .then(res => {
        console.log(`${this.data.title}数据:`, res)
        
        // 假设接口返回格式为 { rows: [...], total: 100 }
        const newCourses = this.data.pageNum === 1 ? res.rows : [...this.data.courses, ...res.rows]
        
        // 判断是否还有更多数据
        const hasMore = newCourses.length < (res.total || 0)
        
        this.setData({
          courses: newCourses,
          hasMore: hasMore,
          pageNum: this.data.pageNum + 1
        })
      })
      .catch(err => {
        console.error(`${this.data.title}请求失败`, err)
        wx.showToast({
          title: '数据加载失败',
          icon: 'none'
        })
      })
      .finally(() => {
        this.setData({ loading: false })
      })
  },

  // 下拉刷新
  onPullDownRefresh() {
    // 重置分页参数
    this.setData({
      pageNum: 1,
      hasMore: true
    })
    
    // 重新加载数据
    this.loadCourseData().then(() => {
      wx.stopPullDownRefresh()
    })
  },

  // 上拉加载更多
  onReachBottom() {
    this.loadCourseData()
  },
  
  // 跳转到课程详情
  goIntroduct(e) {
    // 获取当前课程ID
    const courseId = e.currentTarget.dataset.id
    console.log(e);
    wx.navigateTo({
      url: `/pages/introduct/introduct?courseId=${courseId}`,
    })
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    this.loadCourseData().then(() => {
      wx.stopPullDownRefresh() // 停止下拉刷新动画
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})